In computer systems, flash memory-based cache (flash cache) is used to store previously requested data on non-volatile (e.g., NAND) flash memory chips so that it can be quickly retrieved when it is needed again, thereby enabling requests for data to be met with greater speed. A computer system typically stores a temporary copy of the most active data in the flash cache and a permanent copy of the data on a hard disk drive (HDD). Thus, flash caches are often used in tandem with slower hard disk drives (HDDs) to improve data access times. The NAND flash cache is typically implemented on a solid-state drive (SSD), though other types of devices (e.g., PCI Express card or a DIMM-based flash device) are also used.
One advantage of using SSD for caching is that the data is stored persistently across system restarts. This means that the cache can remain in a “warm” state across restarts, which accelerates client accesses immediately without the typical warming period needed by caches on volatile storage such as DRAM. To make cache data truly usable, though, there is cache status information that must be maintained across system restarts as well. Updating cache status information on every access is not practical, because writing to flash on every update uses SSD I/O cycles for status updates instead of serving data to clients. Also, frequent writes will use up limited erasures supplied by the flash device.
What is needed, therefore, is a method that maintains warmness of the cache without causing many erasures to SSD memory devices.
The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also be inventions. EMC, Data Domain, and Data Domain Restorer are trademarks of EMC Corporation.